/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.proteu.hibernate.beans;

import br.com.proteu.hibernate.util.FireBirdHelperProteu;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 *
 * @author ricardo
 */
@Entity
@Table(name="USUARIOS")
public class UsuariosProteu implements Serializable{

    @Id
    @Column(name="USU_ST_CODIGO")
    private Integer usuStCodigo;
    @Column(name="USU_ST_NOME")
    private String usuStNome;
    @Column(name="USU_ST_SENHA")
    private String usuStSenha;
    @Lob
    @Column(name="USUFOTO")
    private String usuFoto;
    @Column(name="USU_CH_MEDICO")
    private String usuChMedico;
    @Column(name="MED_ST_CODIGO")
    private String medStCodigo;
    @Column(name="USU_ST_CARGO")
    private String usustCargo;
    @Column(name="USU_ST_BLOQUEADO")
    private String usuStBloqueado;
    @Column(name="USU_CH_ATENDENTE")
    private String usuChAtendente;
    @Column(name="USU_CH_CALLCENTER")
    private String usuChCallcenter;
    @Column(name="USU_CH_RECEPCAO")
    private String usuChRecepcao;
    @Column(name="USU_CH_INTERNET")
    private String usuChInternet;
    @Column(name="USU_CH_CENTRAL_GUIAS")
    private String usuChCentralGuias;
    @Column(name="UNI_IN_CODIGO")
    private Integer uniInCodigo;

    @Transient
    private MedicosProteu medicoObject;
    @Transient
    private UnidadesProteu unidadeObject;
    @Transient
    private String ip;
    @Transient
    private Date upTime;






    public String getMedStCodigo() {
        return medStCodigo;
    }

    public void setMedStCodigo(String medStCodigo) {
        this.medStCodigo = medStCodigo;
    }

    public String getUsuChAtendente() {
        return usuChAtendente;
    }

    public void setUsuChAtendente(String usuChAtendente) {
        this.usuChAtendente = usuChAtendente;
    }

    public String getUsuChCallcenter() {
        return usuChCallcenter;
    }

    public void setUsuChCallcenter(String usuChCallcenter) {
        this.usuChCallcenter = usuChCallcenter;
    }

    public String getUsuChCentralGuias() {
        return usuChCentralGuias;
    }

    public void setUsuChCentralGuias(String usuChCentralGuias) {
        this.usuChCentralGuias = usuChCentralGuias;
    }

    public String getUsuChInternet() {
        return usuChInternet;
    }

    public void setUsuChInternet(String usuChInternet) {
        this.usuChInternet = usuChInternet;
    }

    public String getUsuChMedico() {
        return usuChMedico;
    }

    public void setUsuChMedico(String usuChMedico) {
        this.usuChMedico = usuChMedico;
    }

    public String getUsuChRecepcao() {
        return usuChRecepcao;
    }

    public void setUsuChRecepcao(String usuChRecepcao) {
        this.usuChRecepcao = usuChRecepcao;
    }

    public String getUsuFoto() {
        return usuFoto;
    }

    public void setUsuFoto(String usuFoto) {
        this.usuFoto = usuFoto;
    }

    public Integer getUniInCodigo() {
        return uniInCodigo;
    }

    public void setUniInCodigo(Integer uniInCodigo) {
        this.uniInCodigo = uniInCodigo;
    }

    public String getUsuStBloqueado() {
        return usuStBloqueado;
    }

    public void setUsuStBloqueado(String usuStBloqueado) {
        this.usuStBloqueado = usuStBloqueado;
    }

    public Integer getUsuStCodigo() {
        return usuStCodigo;
    }

    public void setUsuStCodigo(Integer usuStCodigo) {
        this.usuStCodigo = usuStCodigo;
    }

    public String getUsuStNome() {
        return usuStNome;
    }

    public void setUsuStNome(String usuStNome) {
        this.usuStNome = usuStNome;
    }

    public String getUsuStSenha() {
        return usuStSenha;
    }

    public void setUsuStSenha(String usuStSenha) {
        this.usuStSenha = usuStSenha;
    }

    public String getUsustCargo() {
        return usustCargo;
    }

    public void setUsustCargo(String usustCargo) {
        this.usustCargo = usustCargo;
    }

    @Transient
    public MedicosProteu getMedicoObject() {

        if(medicoObject == null && medStCodigo != null){
            medicoObject = (MedicosProteu) FireBirdHelperProteu.getObject(MedicosProteu.class, medStCodigo);
        }
        return medicoObject;
    }

    public void setMedicoObject(MedicosProteu medicoObject) {
        this.medicoObject = medicoObject;
    }

    @Transient
    public UnidadesProteu getUnidadeObject() {
        if(unidadeObject == null && uniInCodigo != null){
            unidadeObject = (UnidadesProteu)FireBirdHelperProteu.getObject(UnidadesProteu.class, uniInCodigo);
        }
        return unidadeObject;
    }

    public void setUnidadeObject(UnidadesProteu unidadeObject) {
        this.unidadeObject = unidadeObject;
    }

    @Transient
    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }
    @Transient
    public Date getUpTime() {
        return upTime;
    }

    public void setUpTime(Date upTime) {
        this.upTime = upTime;
    }


    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final UsuariosProteu other = (UsuariosProteu) obj;
        if (this.usuStCodigo != other.usuStCodigo && (this.usuStCodigo == null || !this.usuStCodigo.equals(other.usuStCodigo))) {
            return false;
        }
        return true;
    }



    @Override
    public int hashCode() {
        int hash = 7;
        hash = 53 * hash + (this.usuStCodigo != null ? this.usuStCodigo.hashCode() : 0);
        return hash;
    }
    
}
